package org.lanqiao.service;

import java.util.LinkedHashMap;
import java.util.List;

import org.lanqiao.dao.ProductDaoImpl;
import org.lanqiao.pojo.CategoryPOJO;
import org.lanqiao.pojo.PageModel;
import org.lanqiao.pojo.ProductPOJO;

public class ProductServiceImpl {
	/**
	 * 商品service操作
	 */
	ProductDaoImpl productDaoImp=new ProductDaoImpl();

	/**
	 * 全部商品搜索，默认排序 返回商品所有信息及销量，并分页
	 */
	public PageModel<List> productAllService(String page,String pagesize) {
		PageModel<List> list=productDaoImp.productSelectDefaultDao(page,pagesize);
		return list;
	}
	/**
	 * 全部商品搜索，按销量排序 返回值商品所有信息及销量，并分页  传入参数 page第几页 pagesize页面大小
	 */
	public PageModel<List> productCountService(String page,String pagesize) {
		PageModel<List> list=productDaoImp.productSaleCountDao(page,pagesize);
		return list;
	}
	/**
	 * 全部商品搜索，按价格降序排序 返回值商品所有信息及销量，并分页  传入参数 page第几页 pagesize页面大小
	 */
	public PageModel<List> productPriceService(String page,String pagesize) {
		PageModel<List> list=productDaoImp.productPriceDao(page, pagesize);
		return list;
	}
	/**
	 * 下架商品，传product类
	 */
	public List<LinkedHashMap<String, Object>> cancelProductService(ProductPOJO product) {
		List<LinkedHashMap<String, Object>> list=productDaoImp.cancelPuductDao(product);
		return list;
	}
	/**
	 * 上架商品 传product类 除 Id 状态等
	 */
	public int addProductService(ProductPOJO product) {
		int list=productDaoImp.addPuductDao(product);
		return list;
	}
	
	/**
	 * 修改商品信息 传product类 等
	 */
	public int changeProductService(ProductPOJO product) {
		int list=productDaoImp.changeProductDao(product);
		return list;
	}
	/**
	 * 查询商品根据产品id
	 * @param product
	 * @return
	 */
	public List<LinkedHashMap<String, Object>> selectOneService(ProductPOJO product)  {
		List<LinkedHashMap<String, Object>> list=productDaoImp.productSelectOneDao(product);
		return list;
	}
	
	/**
	 * 搜索商品分页
	 */
	public PageModel<List> productRowService(String page,String pageSize) {
		PageModel<List> model=productDaoImp.productRowSelectDao(page, pageSize);
		return model;
	}
	/**
	 * 通过productCode进入详情页查出商品名，描述
	 */
	public List<LinkedHashMap<String, Object>> descriptionService(ProductPOJO product)  {
		List<LinkedHashMap<String, Object>> list=productDaoImp.descriptionDao(product);
		return list;
	}
	/**
	 * 详情页通过productCode查出规格
	 */
	public List<LinkedHashMap<String, Object>> standardService(ProductPOJO product)  {
		List<LinkedHashMap<String, Object>> list=productDaoImp.standardDao(product);
		return list;
	}
	/**
	 * 详情页通过productCode查出规格,价格
	 */
	public List<LinkedHashMap<String, Object>> standPriceService(ProductPOJO product)  {
		List<LinkedHashMap<String, Object>> list=productDaoImp.standPriceDao(product);
		return list;
	}
	/**
	 * 详情页通过productCode查出颜色
	 */
	public List<LinkedHashMap<String, Object>> colorService(ProductPOJO product)  {
		List<LinkedHashMap<String, Object>> list=productDaoImp.colorDao(product);
		return list;
	}
	/**
	 * 通过价钱和颜色查出商品id
	 */
	public List<LinkedHashMap<String, Object>> productIdSelectService(ProductPOJO product)  {
		List<LinkedHashMap<String, Object>> list=productDaoImp.productIdSelectDao(product);
		return list;
	}
	/**
	 * 查询分类 默认排序且分页 传入参数catename类名，page页数，pagesize页面大小
	 */
	//查询分类商品
	public PageModel<List> selectCateService(CategoryPOJO cate ,String page,String pageSize)  {
		PageModel<List> list=productDaoImp.selectCategoryDao(cate,page,pageSize);
		return list;
	}
	/**
	 * 同类型按价格排序，且分页 传入参数catename类名，page页数，pagesize页面大小
	 * @param cate
	 * @param page
	 * @param pageSize
	 * @return
	 */
	public PageModel<List> priceNumService(CategoryPOJO cate ,String page,String pageSize)  {
		PageModel<List> list=productDaoImp.priceNumDao(cate,page,pageSize);
		return list;
	}
	/**
	 * 同类型按销量排序，且分页 传入参数catename类名，page页数，pagesize页面大小
	 */
	public PageModel<List> saleNumService(CategoryPOJO cate ,String page,String pageSize)  {
		PageModel<List> list=productDaoImp.SaleNumDao(cate,page,pageSize);
		return list;
	}
	/**
	 * 模糊搜索商品按默认排序，前台传入商品模糊名productname，page页数，pagesize页面大小，返回商品总条数和商品所有信息
	 */
	public PageModel<List> fuzzyDefaultService(ProductPOJO product,String page,String pageSize)  {
		PageModel<List> list=productDaoImp.fuzzyDefaultDao(product,page,pageSize);
		return list;
	}
	/**
	 * 模糊搜索商品按销量排序，前台传入商品模糊名productname，page页数，pagesize页面大小，返回商品总条数和商品所有信息
	 */
	public PageModel<List> fuzzySaleCountService(ProductPOJO product,String page,String pageSize)  {
		PageModel<List> list=productDaoImp.fuzzySaleCountDao(product,page,pageSize);
		return list;
	}
	/**
	 * 模糊搜索商品按价格排序，前台传入商品模糊名productname，page页数，pagesize页面大小，返回商品总条数和商品所有信息
	 */
	public PageModel<List> fuzzyPriceService(ProductPOJO product,String page,String pageSize)  {
		PageModel<List> list=productDaoImp.fuzzyPriceDao(product,page,pageSize);
		return list;
	}
	/**
	 * 测试分页
	 * @param product
	 * @param page
	 * @param pageSize
	 * @return
	 */
	public PageModel<List> testFENYService(ProductPOJO product,String page,String pageSize)  {
		PageModel<List> list=productDaoImp.testFENyeDao(product,page,pageSize);
		return list;
	}
	
	
}
